home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48hor2 / timer2.src < prev    next >
Text File  |  1992-01-11  |  6KB  |  276 lines

  1. %%HP: T(3)A(D)F(.);
  2. @ TIMER2.LIB's original directory
  3. DIR
  4.   $CONFIG
  5.     \<< 799 ATTACH
  6.     \>>
  7.   $ROMID 799
  8.   $TITLE
  9. "TIMER.APPLICATIONS"
  10.   $VARS { UM TS US
  11. TSTART }
  12.   $VISIBLE { TIM1
  13. TIMER.COUNTDOWN
  14. TSTART }
  15.   CNTUP
  16.     \<< GET.SEC \-> ss
  17. ps
  18.       \<< ps ss - 0
  19. 'UM' STO 10 / DUP
  20. IP 'TS' STO FP 10 *
  21. IP 'US' STO
  22.         DO GET.SEC
  23. \-> s
  24.           \<<
  25.             IF ps s
  26. \=/
  27.             THEN
  28. 'US' INCR s 'ps'
  29. STO
  30.               IF 9
  31. >
  32.               THEN
  33. 'US' 10 STO- 'TS'
  34. INCR
  35. IF 5 >
  36. THEN 'TS' 6 STO-
  37. 'UM' INCR DROP DUP
  38. (-3.4,3.2) NUMS.GRO
  39. UM 1 + GET REPL
  40. END DUP (.6,3.2)
  41. NUMS.GRO TS 1 + GET
  42. REPL
  43.               END
  44. DUP (3.5,3.2)
  45. NUMS.GRO US 1 + GET
  46. REPL
  47.             ELSE
  48. MEM DROP
  49.             END
  50.           \>>
  51.         UNTIL
  52.           IF KEY
  53.           THEN 11
  54. ==
  55.           ELSE 0
  56.           END
  57.         END 1000 .5
  58. BEEP 2 WAIT
  59.       \>>
  60.     \>>
  61.   COUNT2
  62.     \<< GET.SEC \-> ps
  63.       \<<
  64.         DO GET.SEC
  65. \-> s
  66.           \<<
  67.             IF ps s
  68. \=/
  69.             THEN
  70. 'US' DECR s 'ps'
  71. STO
  72.               IF 0
  73. <
  74.               THEN
  75. 'US' 10 STO+ 'TS'
  76. DECR
  77. IF 0 <
  78. THEN 'TS' 6 STO+
  79. 'UM' DECR DROP DUP
  80. (-3.4,3.2) NUMS.GRO
  81. UM 1 + GET REPL
  82. END DUP (.6,3.2)
  83. NUMS.GRO TS 1 + GET
  84. REPL
  85.               END
  86. DUP (3.5,3.2)
  87. NUMS.GRO US 1 + GET
  88. REPL
  89.             ELSE
  90. MEM DROP
  91.             END
  92.           \>>
  93.         UNTIL US TS
  94. UM + + 0 ==
  95.           IF KEY
  96.           THEN 11
  97. ==
  98.           ELSE 0
  99.           END OR
  100.         END
  101.         IF UM TS US
  102. + + 0 ==
  103.         THEN CLEAR
  104. PICT GET.SEC
  105.           DO TONE
  106.           UNTIL
  107.             IF KEY
  108.             THEN 11
  109. ==
  110.             ELSE 0
  111.             END
  112.           END CNTUP
  113.         ELSE 1000
  114. .5 BEEP 2 WAIT
  115.         END
  116.       \>>
  117.     \>>
  118.   GET.SEC
  119.     \<< TIME 100 * FP
  120. 100 * IP
  121.     \>>
  122.   IN&CK
  123.     \<<
  124.       DO 0 \-> ok
  125.         \<< CLEAR
  126. "COUNTDOWN TIMER
  127. Enter Mins & Secs
  128.  (i.e. 2:48 is 248)"
  129. { ":Time:0" { -1 7
  130. } \Ga V } INPUT OBJ\->
  131. DTAG
  132.           IF DUP
  133. 'A' SAME
  134.           THEN DROP
  135. 0
  136.           END DUP
  137. DUP 100 /
  138.           IF IP DUP
  139. 9 >
  140.           THEN
  141. CLLCD
  142. "Minutes are too
  143.   Large"
  144. 500 .5 BEEP 1 DISP
  145. 2 WAIT CLLCD
  146.           ELSE 'ok'
  147. INCR DROP
  148.           END 100 *
  149. -
  150.           IF 59 >
  151.           THEN
  152. CLLCD
  153. "Seconds are too
  154.   Large"
  155. 500 .5 BEEP 1 DISP
  156. 2 WAIT CLLCD
  157.           ELSE 'ok'
  158. INCR DROP
  159.           END ok
  160.         \>>
  161.       UNTIL 2 ==
  162.       END
  163.       IF DUP 0 \=/
  164.       THEN 'TSTART'
  165. STO 1
  166.       END
  167.     \>>
  168.   NUMS.GRO {
  169. GROB 27 26 0EFFF3000FFFF7000FFFF7000FFFF7000F0087000F0087000F0087000F0087000F0087000F0087000F0087000F0087000F0087000F0087000F0087000F0087000F0087000F0087000F0087000F0087000F0087000F0087000FFFF7000FFFF7000FFFF7000EFFF300
  170. GROB 27 26 000F0000008F000000CF000000EF000000FF000008FF0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F00000EFFF7000EFFF7000EFFF7000EFFF700
  171. GROB 27 26 0EFFF3000FFFF7000FFFF7000FFFF7000F0087000F00870000008700000087000000870000008700000087000EFFF7000FFFF7000FFFF7000FFFF3000F0000000F0000000F0000000F0000000F0000000F0000000F0000000FFFF7000FFFF7000FFFF7000EFFF700
  172. GROB 27 26 0EFFF3000FFFF7000FFFF7000FFFF7000F0087000F008700000087000000870000008700000087000000870000FFF70000FFF70000FFF70000FFF70000008700000087000000870000008700000087000F0087000F0087000FFFF7000FFFF7000FFFF7000EFFF300
  173. GROB 27 26 0F0087000F0087000F0087000F0087000F0087000F0087000F0087000F0087000F0087000F0087000F0087000FFFF7000FFFF7000FFFF7000EFFF7000000870000008700000087000000870000008700000087000000870000008700000087000000870000008700
  174. GROB 27 26 0EFFF7000FFFF7000FFFF7000FFFF7000F0000000F0000000F0000000F0000000F0000000F0000000F0000000FFFF3000FFFF7000FFFF7000EFFF70000008700000087000000870000008700000087000F0087000F0087000FFFF7000FFFF7000FFFF7000EFFF300
  175. GROB 27 26 0EFFF3000FFFF7000FFFF7000FFFF7000F0087000F0087000F0000000F0000000F0000000F0000000F0000000FFFF3000FFFF7000FFFF7000FFFF7000F0087000F0087000F0087000F0087000F0087000F0087000F0087000FFFF7000FFFF7000FFFF7000EFFF300
  176. GROB 27 26 0EFFF3000FFFF7000FFFF7000FFFF7000F0087000F0087000000870000008700000087000000870000008700000087000000870000008700000087000000870000008700000087000000870000008700000087000000870000008700000087000000870000008700
  177. GROB 27 26 0EFFF3000FFFF7000FFFF7000FFFF7000F0087000F0087000F0087000F0087000F0087000F0087000F0087000FFFF7000FFFF7000FFFF7000FFFF7000F0087000F0087000F0087000F0087000F0087000F0087000F0087000FFFF7000FFFF7000FFFF7000EFFF300
  178. GROB 27 26 0EFFF3000FFFF7000FFFF7000FFFF7000F0087000F0087000F0087000F0087000F0087000F0087000F0087000FFFF7000FFFF7000FFFF7000EFFF70000008700000087000000870000008700000087000F0087000F0087000FFFF7000FFFF7000FFFF7000EFFF300
  179. GROB 14 26 000000000000000000000000000000000C300C300C300C30000000000C300C300C300C3000000000000000000000000000000000
  180. }
  181.   SCREEN
  182.     \<< PICT DUP
  183. (3.5,3.2) NUMS.GRO
  184. US 1 + GET REPL DUP
  185. (.6,3.2) NUMS.GRO
  186. TS 1 + GET REPL DUP
  187. (-.7,3.2) NUMS.GRO
  188. 11 GET REPL DUP
  189. (-3.4,3.2) NUMS.GRO
  190. UM 1 + GET REPL MEM
  191. DROP
  192.     \>>
  193.   SET.TM
  194.     \<< TSTART 100 /
  195. DUP IP SWAP FP 10 *
  196. DUP IP SWAP FP 10 *
  197. 'US' STO 'TS' STO
  198. 'UM' STO
  199.     \>>
  200.   SETONE.TM
  201.     \<< 1 0 0 'US'
  202. STO 'TS' STO 'UM'
  203. STO
  204.     \>>
  205.   STGO.KEY
  206.     \<<
  207.       DO -1 WAIT
  208.       UNTIL DUP DUP
  209. 16.1 == SWAP 11.1
  210. == OR
  211.       END
  212.     \>>
  213.   TIM1
  214.     \<< RCLMENU {
  215. (-6.5,-3.1)
  216. (6.5,3.2) X 0 (0,0)
  217. FUNCTION Y } 'PPAR'
  218. STO # 131d # 64d
  219. PDIM ERASE { "STOP"
  220. "" "" "" "" "GO" }
  221. TMENU \-> pth
  222.       \<< { # 0d # 0d
  223. } PVIEW SETONE.TM
  224. SCREEN STGO.KEY
  225.         IF 16.1 ==
  226.         THEN
  227.           DO COUNT2
  228. 2 WAIT SETONE.TM
  229. SCREEN
  230.           UNTIL
  231. STGO.KEY 16.1 \=/
  232.           END
  233.         END CLEAR {
  234. UM TS US PPAR }
  235. PURGE pth MENU
  236.       \>>
  237.     \>>
  238.   TIMER.COUNTDOWN
  239.     \<< RCLMENU {
  240. (-6.5,-3.1)
  241. (6.5,3.2) X 0 (0,0)
  242. FUNCTION Y } 'PPAR'
  243. STO # 131d # 64d
  244. PDIM ERASE { "STOP"
  245. "" "" "" "" "GO" }
  246. TMENU TSTART
  247.       IF DUP
  248. 'TSTART' SAME
  249.       THEN DROP 100
  250.       END 'TSTART'
  251. STO \-> pth
  252.       \<<
  253.         DO { # 0d
  254. # 0d } PVIEW TLOOP
  255.         UNTIL NOT
  256.         END CLEAR {
  257. PPAR UM TS US }
  258. PURGE pth MENU
  259.       \>>
  260.     \>>
  261.   TLOOP
  262.     \<< SET.TM SCREEN
  263. STGO.KEY
  264.       IF 16.1 ==
  265.       THEN COUNT2 1
  266.       ELSE IN&CK
  267.       END
  268.     \>>
  269.   TONE
  270.     \<< 1000 .5 BEEP
  271. 500 .5 BEEP .25
  272. WAIT
  273.     \>>
  274.   TSTART 15
  275. END
  276.